今天說明一下昨天的程式.
// hello1
package main
import (
"fmt"
)
func main() {
可愛()
}
func 可愛() {
fmt.Println("Golang 蠻可愛的")
}
package : golang程式是用package方式來組織.
import : 可以讓程式使用外部的程式碼.在此是引用標準函式庫裡的fmt,
fmt 是格式化輸出函式庫.
main() : 跟C一樣,代表主程式.
可愛() : 是一個自定義函數. 名字就叫 可愛. 因為golang天生的支持unicode,所以使用漢字,日文等等都很自然.
fmt.println() : 列印後自動換行的函式. 等於傳統上C 的printf()裡面加上\n. 更方便使用.
遵照總裁指示,已經修正了.
<pre class="c" name="code">// hello2
package main
import (
"fmt"
)
func main() {
可愛()
}
func 可愛() {
fmt.Println("總裁愛美女!!")
}
編譯後,執行結果如下:
我比較喜歡蠻可愛的美女....
總裁
你老婆剛剛在店裡買了一把菜刀,他很火
不可能的,這個
cdfu提到:
蠻可愛的美女
就是我家女王呀...
這好唷~給你一個讚~
我也來個無聊小遊戲
<pre class="c" name="code">
package main
import (
"fmt"
"time"
)
type general struct {
name string
strength int
soldier int
}
// 讓角色有攻擊指令
func (self *general) attack(target *general) {
target.soldier = target.soldier - self.strength
fmt.Printf("\n%s 攻擊 %s 損失了 %d 兵力,剩餘 %d 兵力\n",
self.name, target.name, self.strength, target.soldier)
}
// npc 每三秒攻擊一次
func npcRun(npc *general, role *general) {
for npc.soldier > 0 && role.soldier > 0 {
npc.attack(role)
time.Sleep(3 * 1e9)
}
}
func main() {
role := &general{"張飛", 255, 1000}
enemy := &general{"岳飛", 240, 1000}
go npcRun(enemy, role)
for enemy.soldier > 0 && role.soldier > 0 {
var command int
fmt.Print("請下指令 1.攻擊 2.待命:")
fmt.Scanln(&command)
if command == 1 {
role.attack(enemy)
}
time.Sleep(1e9)
}
if role.soldier > enemy.soldier {
fmt.Println("你贏了!")
} else {
fmt.Println("你輸了!")
}
}
感謝回應.蠻有趣的程式.不過 time.Sleep(1e9) 來代表sleep一秒的方式,
是比較早的寫法.
改為time.Sleep(time.Second) 這樣可讀性會更好.